package com.um.jdy.rpc.notify;

import com.um.jdy.rpc.entity.PBDeviceInfo;
import com.um.jdy.rpc.entity.PBPort;
import com.um.jdy.rpc.enums.DeviceIotEnum;

import java.util.List;

/**
 * 充电宝
 * 设备调用平台RPC
 *
 * @author renjunwei
 * 日期 2023/6/27
 * 版权所有 广州优匠科技有限公司
 */
public interface RpcPBDeviceNotifyService {

    /**
     * 设备登录上报
     * @param seq 序列号
     * @param imei IMEI码
     * @param ports 端口列表
     * @param info 设备信息
     */
    void reqDeviceLogin(String command,String seq, String imei, List<PBPort> ports, PBDeviceInfo info);

    /**
     * 设备离线上报
     * @param imei IMEI码
     */
    void reqDeviceOffline(String imei);

    /**
     * 设备心跳上报
     * @param seq 序列号
     * @param imei IMEI码
     */
    void reqDeviceHeart(String command,String seq,String imei,String protocol);

    /**
     * 回复设备重启
     * @param seq 序列号
     * @param imei IMEI码
     */
    void respRestart(String command,String seq,String imei);

    /**
     * 回复端口状态查询
     * @param seq 序列号
     * @param imei IMEI码
     * @param ports 端口列表
     */
    void respQueryPorts(String command,String seq,String imei,List<PBPort> ports);


    /**
     * 回复强制打开端口
     *
     * @param seq        序列号
     * @param imei       IMEI码
     * @param state 租用结果 0 为正常，1 为没有充电宝，2 为无可租用，4 超时
     * @param ports      打开端口列表
     */
    void respOpenPort(String command,String seq, String imei,Integer state, List<PBPort> ports);

    /**
     * 查询返回设备相关信息
     * @param command
     * @param seq
     * @param deviceInfo
     */
    void respDeviceInfo(String command,String seq,String imei,PBDeviceInfo deviceInfo);

}
